package com.whynot.frame.manythread.future;

/**
 * 描    述:异步编程
 * 创建时间: 2018/12/24
 */
public class MyFuture {
	
	/**
	 * 这里实际上有两个线程，
	 * 一个线程直接返回
	 * 另一个现场把实际对象得到的结果返回给代理对象
	 * @param str
	 * @return
	 */
	public Data request(final String str){
		final FutureData futureData = new FutureData();
		new Thread(new Runnable() {
			public void run() {
				RealData realData = new RealData(str);
				//这个线程其实就是一直在执行setRequest，只到那边结束
				futureData.setRequest(realData);
			}
		}).start();
		return futureData;
	};
}
